package routers

import (
	"2105A/web/controllers"

	"github.com/beego/beego/v2/server/web/context"

	beego "github.com/beego/beego/v2/server/web"
)

// route 怎么配置
// controller 如何接值、发送变量、展示视图 请求数据处理
// model 连接数据库 查询、添加、更新、带过滤条件的查询
// beego 表单验证
// beego 路由过滤
// beego session的使用 session开启 在conf目录下开启
// beego 简单日志记录
// redis 的使用

func init() {

	// 白名单、不需要登录验证
	var write_list = map[string]string{
		"/login":    "login",
		"/register": "register",
		//。。。
	}

	var FilterUser = func(ctx *context.Context) {
		ok := ctx.Input.Session("username")
		exists := write_list[ctx.Request.RequestURI]
		if ok == nil && len(exists) == 0 { // 当前访问的路由不再白名单里面、并且没有登录、这是就需要登录
			ctx.WriteString("请先登录")
			return // 不再往下继续执行
		}
	}
	beego.InsertFilter("/*", beego.BeforeExec, FilterUser) // 给所有添加登录的验证

	beego.Router("/", &controllers.MainController{})

	beego.Router("/getUserList", &controllers.UserController{}, "get:GetUserList")

	beego.Router("/login", &controllers.UserController{}, "post:Login")

	beego.Router("/logout", &controllers.UserController{}, "get:Logout")

	beego.Router("/register", &controllers.UserController{}, "post:Register")

	beego.Router("/index", &controllers.IndexController{}, "get:Index")

}
